<?php

namespace Mogod\Core\Data\Driver\Pdo\PartTranslator;

/**
 * Рендеринг VALUES части запроса.
 *
 * @author goorus, morph
 */
class PdoPartTranslatorValues extends PdoPartTranslatorAbstract
{

	const SQL_VALUES = 'VALUES';

	/**
	 * Переводит часть запроса
	 *
	 * @param \Mogod\Core\Query\Query
	 * @param \Mogod\Core\Data\Driver\Pdo\PdoTranslatedQuery
	 */
	public function translate($query, $translated)
	{
		$parts = $this->getMyPart($query);

		if (!$parts) {
			return;
		}

		$fields = $values = array();

		foreach ($parts as $querySet) {
			/** @var $querySet \Mogod\Core\Query\QuerySet */
			foreach ($querySet->getValues() as $field => $value) {
				$fields[] = $this->escape($field);
				$values[] = $this->quote($value);
			}
		}

		$fields = implode(', ', $fields);
		$values = implode(', ', $values);

		$translated->appendSql(' (', $fields, ') VALUES (', $values, ')');
	}

}
